In a packet-based switching system an essential building block for the system is a switch, a term used herein for a multiple-port network device having ports capable of transmitting and/or receiving addressed packets to and from an external network and at least one ‘fabric’ port by means of which it is connected to at least one other device in a switching fabric.
The term ‘switching fabric’ is a compendious term which is intended to cover such earlier terms as ‘stack’ and ‘cascade’. In stacked or cascaded systems, a plurality of switching devices have a mutual connection, originally in the form of a ring but more recently in the form of a mesh, which serves to convey packets between the devices or ‘units’ in the mesh and also, either by means of the same data path or by a separate control path, allows the passage of control or management signals between the units so that they constitute, for example, a single large switch which has available to it substantially all the aggregate of ports possessed by the individual units making up the switching fabric.
The term ‘stack’ originally arose because units connected together in this general way were designed to be physically stacked one upon the other. The term ‘cascade’ arose because in communication terms the units had a cascade connection whereby packets received at one unit and intended for transmission from another unit in the stack followed a path that visited the units in turn until the relevant unit having the desired egress port was reached, the connection of the units for this purpose resembling a cascade. Both terms are still appropriate in a figurative sense though it needs to be emphasized that an important aspect of the present invention is the connection of the units in a mesh fabric, so that the units will neither be physically stacked nor be connected, strictly speaking, in ‘cascade’.
Although the term ‘switch’ is used herein for convenience, it needs to be emphasized that the term is used generally in relation to a device which can receive packets, examine address data therein, and, optionally subject to various forwarding or processing rules, direct them out of a port on the same unit or direct them out of a ‘fabric’ port to another unit in the switching fabric. In some systems of this nature, the unit that receives the packet will perform ‘source routing’, that is to say it will determine the final destination port before it transmits the packet out of a fabric port. However, this facility is not possessed by all units that can be accommodated into a switching fabric and one of the objects of the present invention is to accommodate units which both have and do not have a source routing facility.
Versatility of switching fabrics requires that the units may be located considerable distances apart and that they are interconnected by a mesh. As for general communication networks, the creation of loops is inherent in meshes and accordingly when configuring or providing resilience in a switching fabric, measures need to be taken to avoid, physically or dynamically, loops in the mesh.
The present invention provides a point-to-point protocol for the configuration and control of a distributed ‘stack’ or switching fabric.
One aspect of the invention concerns a protocol which can be employed by the units of a switching fabric to facilitate their control in several ways. The preferred protocol facilitates the computation of an optimum path for traffic from each unit to any other unit. The preferred protocol also facilitates the monitoring of and corrective action if required by, changes in the state of the fabric. In particular it facilitates a progressive disabling of links in the fabric in the event of for example a link's failure or the removal of a unit from the fabric and a progressive enabling of the links in the fabric thereafter. An important feature is the maintenance of a common system of numbering of changes in the fabric and the communication by means of the packets of information that indicates which numbered change has been communicated to each of the units. This system allows a control based on whether all the units know that all the other units have been updated in response to all the changes of state in the fabric.
Another aspect of the invention is the use of a routing algorithm, and particularly a shortest path algorithm, within a fabric that constitutes a single network entity. By ‘single network entity’ is meant that the fabric constitutes a single network node. If the units constitute a router, then there will be only one routing hop presented by the fabric even though a packet may visit more than one unit in the fabric. The units in the fabric may share a common network address, as described for example in co-pending applications for Weyman et al., Ser. No. 10/093,506 (2003-0147412-A1), or O'Neill et al., Ser. No. 10/337,299 filed 7 Jan. 2003, both commonly assigned herewith.
Other aspects of the invention relate to the format of packets which put the protocol into effect and state machines which act in conformity with the protocol and the information conveyed by the packets.
Reference will be made hereinafter to the accompanying drawings.